#include <iostream>
#include <string>
#include <stack>
using namespace std;
const int N = 110;

string s;
stack<string> ss;
stack<char> st;
int num = 0;
string s1, s2;
bool htwo = false;
void slove()
{
    ss.push("");
    for(auto e: s)
    {
        if(e == '(')  st.push(e), ss.push("");
        else if(e == ')' && ss.size() > 1)
        {
            while(st.top() != '(')
            {
                string s1 = ss.top();
                ss.pop();
                if(ss.top().size() < s1.size()) ss.top() = s1;
                st.pop();
            }
            string tt = ss.top();
            ss.pop();
            ss.top() += tt;
            st.pop();
        }
        else
        {
            if(e == '|')
            {
                st.push(e);
                ss.push("");
            }
            else
                ss.top() += e;
        }
        // cout << ss.size() << ' ';
    }
    while(st.size())
    {
        st.pop();
        string s1 = ss.top();
        ss.pop();
        if(ss.top().size() < s1.size()) ss.top() = s1;
    }
    // cout << endl;
}


int main()
{
    cin >> s;
    slove();
    // cout << ss.size() << endl;
    cout << ss.top().size() << endl;
    return 0;
}